home *** CD-ROM | disk | FTP | other *** search
- Jonathan advertised the existence of his free scheme interpreter on
- comp.lang.scheme. I grabbed a copy and compiled it up under GNU C
- (Thanks to J.Bammi for the GNU C port).
-
- It seemed to go OK, a few messages batted back and forth between myself and
- Jonathan to fix a few ST peccadillos (output buffer flushing, mainly), so I
- thought I'd make the binary available for Atarians to play with.
-
- Firstly, Jonathan's copyright ....
-
- * Copyright 1989 Jonathan Lee. All rights reserved.
- *
- * Permission to use, copy, and/or distribute for any purpose and
- * without fee is hereby granted, provided that both the above copyright
- * notice and this permission notice appear in all copies and derived works.
- * Fees for distribution or use of this software or derived works may only
- * be charged with express written permission of the copyright holder.
- * This software is provided ``as is'' without express or implied warranty.
-
- Right, to business. Fools' lisp is run from GEM or the CLI of your choice with
-
- fools init.scm extra.scm
-
- if you want the extend-syntax stuff, add macros.scm to the arguments. The file
- 'fl' (a csh script) shows how it's done.
-
- You'll probably need to read R3RS (Revised3 Report on Scheme) which defines
- the R3RS syntax (added with macros.scm - else fools' lisp is not quite R3RS
- conformant).
-
- I added a function "cputime" (0 args) which returns CPU ticks. Use it for
- benchmarking.
-
- Change the searched directory path in "extra.scm" to suit your own set up and
- give U**x-style pathnames to the interpreter (thanks Edgar for unx2dos). I
- found it useful to have a "src" subdirectory, which I added to the pathnames in
- extra.scm, then giving (require 'filename) worked happily, as did (load
- "src/filename").
-
- It hasn't been exhaustively tested yet and Jonathan advises that there are a
- couple of bugfixes (which he'll send me soon), but an R3RS-conformant scheme
- interpreter for the ST ain't to be sneezed at!
-
- I am advised that the following code is a fair guide to performance:
-
- (define (nfib x)
- (if (< x 2)
- 1
- (+ (nfib (- x 2)) (nfib (- x 1)) 1)))
-
- With the result of the nfib calculation being the number of procedure calls
- made (--ish), so choosing a sensible x (try between 15 & 20) and using a
- stopwatch (hey, whaddya want, precision, on an ST!!?), you can work out how
- fast it goes (--ish).
-
- One fine day, I'll make a concerted effort at porting Cscheme, but that's a
- tight fit in 2.5Mb, let alone 1Mb. As far as memory goes, this *should* run on
- a 520, but no guarantees.
-
- Jonathan says that he's going to incorporate the #ifdef atari switches into
- the source code, so the ST will continue to receive implicit support, at least.
- But he's nominated me to field ST-specific queries, my email address appears
- below.
-
- Cheers,
-
- Graham
- ======
-
- ------------------------------------------------------------------
- Graham Higgins | Phone: (0272) 799910 x 24060
- Hewlett-Packard Labs | gray@hpl.hp.co.uk
- Bristol | gray%hplb.uucp@ukc.ac.uk
- U.K. | gray@hplb.hpl.hp.com
- ------------------------------------------------------------------
- Disclaimer: My opinions above are exactly that, mine and opinions.
- ------------------------------------------------------------------
-